package com.xiamaliu;

import java.lang.reflect.Constructor;

public class LazyInnerClassSingletonTest {
    public static void main(String[] args)
            throws Exception{
        // 在很无聊的情况下，进行破坏
        Class<?> clazz = LazyInnerClassSingleton.class;

        // 通过反射获取私有的构造方法
        Constructor<?> constructor = clazz.getDeclaredConstructor(null);

        // 强制访问
        constructor.setAccessible(true);

        // 暴力初始化
        Object o1 = constructor.newInstance();

        // 调用了两次构造方法，相当于 new 了两次，犯了原则性错误
        Object o2 = constructor.newInstance();

        System.out.println(o1);
        System.out.println(o2);
        System.out.println(o1 == o2);
    }
}
